StupidBeauty
Read times:839Posted at:Tue Jan 21 04:10:22 2014
- no title specified

Qt®4的Ruby教程翻译:第1章:世界妳好!,Chapter 1: Hello World!

Screenshot: Hello World!Screenshot: Hello World!


文件:

概述

第一个程序是一个简单的“世界妳好”示例。妳只包含一些能让妳构建出一个Qt 程序的最少代码。上面的图片即为这个程序的截图。

以下是这个程序的完整代码:

require 'Qt4'

app = Qt::Application.new(ARGV)

hello = Qt::PushButton.new('Hello World!')

hello.resize(100, 30)

hello.show()

app.exec()

介绍

一个QtRuby程序的最顶级代码通常只需要做一些初始化,然后就把控制权转交给Qt库,之后,Qt就会通过事件来向程序告之用户做了哪些操作。

在每个使用Qt 的图形界面程序中,都必须有且仅有一个 Qt::Application 对象。 Qt::Application管理者各种程序级别的资源,例如默认字体及鼠标光标。

Qt::PushButton是一个图形界面的按钮,用户可以按下然后放开它。它就像任何一个其它的 Qt::Widget 一样,管理着自己的观感。一个部件(widget)就是一个用户界面对象,它可以处理用户输入并且绘制图形外观。程序猿可以改变整体的观感,也可以改变狠多细节上的属性(例如颜色),还可以改变它的内容。一个 Qt::PushButton既可以显示文字也可以显示一个Qt::Icon

一行行地研究

require 'Qt4'

这行代码载入QtRuby这个扩展。

app = Qt::Application.new(ARGV)

app即为这个程序的Qt::Application实例。它是在此处创建的。我们将 ARGV参数传递给Qt::Application构造函数,这样它就可以处理特定的标准命令行参数(例如X11 中的 -display )。所有被Qt 所识别的命令行参数都会从 ARGV 中删除。

注意 在使用 Qt 中的任何一个窗口系统部件之前,必须先创建 Qt::Application 对象。

hello = Qt::PushButton.new('Hello World!')

此处,在创建 Qt::Application 之后,出现了第一处与窗口系统相关的代码:创建了一个按钮。

这个按钮被设置为显示文字"Hello world!"。因为我们没有指定一个亲代窗口(那是由 Qt::PushButton 构造函数的第二个参数指定的),所以这个按钮自身会成为一个窗口,会拥有自身的窗口边框及标题栏。

hello.resize(100, 30)

这个按钮被设置为100像素宽30像素高(窗口边框不计算在内,窗口边框是由窗口系统管理的)。我们可以调用 Qt::Widget::move()来给这个部件赋予一个特定的屏幕位置,不过这次我们不这么做,而是让窗口系统来选择合适的位置。

hello.show()

当妳创建一个部件时,它是不可见的。妳必须调用 Qt::Widget::show()来让它可见

app.exec()

这就是我们将控制权移交给 Qt 的地方。当程序退出时, Qt::CoreApplication::exec()会返回(Qt::CoreApplicationQt::Application的基类。它实现了 Qt::Application中的核心、非图形界面功能,可用来开发非图形界面的程序。)

Qt::CoreApplication::exec() ,中Qt从用户及系统接收及处理事件,并且将各个事件传递给相关的部件

妳现在应当试试运行这个程序。

运行程序

当妳运行这个程序的时候,妳会看到一个含有一个按钮的小窗口,而在那个按钮上妳能够看到那句烩炙人口的话:"Hello world!"

练习

尝试着改变那个窗口的大小。单击那个按钮。如果妳是在X11中运行那个程序的,那么就试试带上 -geometry参数 (例如,-geometry 100x200+10+20)。

[下一篇:Chapter 2]

未知美人

未知美人

Your opinions
Your name:Email:Website url:Opinion content:
- no title specified

HxLauncher: Launch Android applications by voice commands